/*
 * Created by SharpDevelop.
 * User: fatman
 * Date: 10/27/2008
 * Time: 3:10 AM
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */

using System;
using System.Collections.Generic;


namespace CUALib
{
	/// <summary>
	/// Description of BoxDrawingDecorationSet.
	/// </summary>
	
	public enum BoxDrawingColorNames
	{
		background,
		foreground,
		focusBackground,
		focusForeground
	}

	public enum BoxDrawingDecorationNames
	{
		vertical,
		horizontal,
		horizontalTop,
		horizontalBottom,
		cornerLT,
		cornerRT,
		cornerLB,
		cornerRB,
		background,
		scrollBarVerticalBackground,
		scrollBarVerticalKnob,
		menubarBackground

	}


	public class BoxDrawingColorSet : Dictionary<BoxDrawingColorNames, ConsoleColor>
	{
		public BoxDrawingColorSet()
		{
			this [BoxDrawingColorNames.background] = ConsoleColor.DarkBlue;
			this [BoxDrawingColorNames.foreground] = ConsoleColor.Cyan;
			this [BoxDrawingColorNames.focusBackground] = ConsoleColor.Yellow;
			this [BoxDrawingColorNames.focusForeground] = ConsoleColor.DarkBlue;
		}
	}





	public class BoxDrawingDecorationSet : Dictionary<BoxDrawingDecorationNames, char>
	{

		public BoxDrawingDecorationSet()
		{
			this [BoxDrawingDecorationNames.vertical] = '\u2551';
			this [BoxDrawingDecorationNames.horizontal] = '\u2550';
			this [BoxDrawingDecorationNames.horizontalTop] = '\u2550';
			this [BoxDrawingDecorationNames.horizontalBottom] = '\u2550';
			this [BoxDrawingDecorationNames.cornerLT] = '\u2554';
			this [BoxDrawingDecorationNames.cornerRT] = '\u2557';
			this [BoxDrawingDecorationNames.cornerLB] = '\u255A';
			this [BoxDrawingDecorationNames.cornerRB] = '\u255D';
			this [BoxDrawingDecorationNames.background] = '\u2588';
			
			this [BoxDrawingDecorationNames.scrollBarVerticalBackground] = '\u2591';
			this [BoxDrawingDecorationNames.scrollBarVerticalKnob] = '\u25a0';
			this [BoxDrawingDecorationNames.menubarBackground]= '\u2588';
		}
	}


	public class BoxDrawingDecorationSetAsciiArt : BoxDrawingDecorationSet
	{


		public BoxDrawingDecorationSetAsciiArt()
			: base()
		{
			this [BoxDrawingDecorationNames.vertical] = '|';
			this [BoxDrawingDecorationNames.horizontal] = '_';
			this [BoxDrawingDecorationNames.horizontalTop] = '~';
			this [BoxDrawingDecorationNames.horizontalBottom] = '_';
			this [BoxDrawingDecorationNames.cornerLT] = '/';
			this [BoxDrawingDecorationNames.cornerRT] = '\\';
			this [BoxDrawingDecorationNames.cornerLB] = '\\';
			this [BoxDrawingDecorationNames.cornerRB] = '/';
			this [BoxDrawingDecorationNames.background] = ' ';
		}
	}
	
	public class BoxDrawingDecorationSetFarManager : BoxDrawingDecorationSet
	{


		public BoxDrawingDecorationSetFarManager()
			: base()
		{
			this [BoxDrawingDecorationNames.vertical] = '\u2551';
			this [BoxDrawingDecorationNames.horizontal] = '\u2550';
			this [BoxDrawingDecorationNames.horizontalTop] = '\u2550';
			this [BoxDrawingDecorationNames.horizontalBottom] = '\u2550';
			this [BoxDrawingDecorationNames.cornerLT] = '\u2554';
			this [BoxDrawingDecorationNames.cornerRT] = '\u2557';
			this [BoxDrawingDecorationNames.cornerLB] = '\u255A';
			this [BoxDrawingDecorationNames.cornerRB] = '\u255D';
			this [BoxDrawingDecorationNames.background] = '\u2588';
		}
	}


	public class BoxDrawingDecorationSetAlternate : BoxDrawingDecorationSet
	{


		public BoxDrawingDecorationSetAlternate()
			: base()
		{
			this [BoxDrawingDecorationNames.vertical] = '\u2502';
			this [BoxDrawingDecorationNames.horizontal] = '\u2500';
			this [BoxDrawingDecorationNames.horizontalTop] = '\u2500';
			this [BoxDrawingDecorationNames.horizontalBottom] = '\u2500';
			this [BoxDrawingDecorationNames.cornerLT] = '\u250c';
			this [BoxDrawingDecorationNames.cornerRT] = '\u2510';
			this [BoxDrawingDecorationNames.cornerLB] = '\u2514';
			this [BoxDrawingDecorationNames.cornerRB] = '\u2518';
			this [BoxDrawingDecorationNames.background] = '\u2591';
		}
	}
	public class BoxDrawingDecorationSetAlternate2 : BoxDrawingDecorationSet
	{


		public BoxDrawingDecorationSetAlternate2()
			: base()
		{
			this [BoxDrawingDecorationNames.vertical] = '\u2502';
			this [BoxDrawingDecorationNames.horizontal] = '\u2550';
			this [BoxDrawingDecorationNames.horizontalTop] = '\u2550';
			this [BoxDrawingDecorationNames.horizontalBottom] = '\u2550';
			this [BoxDrawingDecorationNames.cornerLT] = '\u2552';
			this [BoxDrawingDecorationNames.cornerRT] = '\u2555';
			this [BoxDrawingDecorationNames.cornerLB] = '\u2558';
			this [BoxDrawingDecorationNames.cornerRB] = '\u255b';
			this [BoxDrawingDecorationNames.background] = '\u2591';
		}
	}



	
}
